package com.jcfk.eam.domain.dto.mould;

import com.jcfk.system.domain.dto.BaseDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.List;

/**
 * 物料主数据
 *
 * @author awei
 * @email 522891237@gqq.com
 * @date 2024-04-19
 */
@Data
public class MdmMaterialDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 物料编号
     */
    @Length(max = 50, message = "物料编号长度不能超过50")
    private String materialCode;

    /**
     * 物料名称
     */
    @Length(max = 50, message = "物料名称长度不能超过50")
    private String materialName;

    /**
     * 物料组主键
     */
    @Length(max = 32, message = "物料组主键长度不能超过32")
    private String materialGroupId;

    /**
     * 物料类型;基本信息
     */
    private Integer materialType;

    /**
     * 短号;基本信息
     */
    @Length(max = 50, message = "短号;基本信息长度不能超过50")
    private String shortCode;

    /**
     * 外来编号;基本信息
     */
    @Length(max = 50, message = "外来编号;基本信息长度不能超过50")
    private String srcCode;

    /**
     * 国产件标识;基本信息
     */
    private Integer lcCkd;

    /**
     * 物料状态;基本信息
     */
    private Integer materialState;

    /**
     * 包装物料类别;基本信息
     */
    private Integer packageType;

    /**
     * 包装单位类别;基本信息
     */
    private Integer handlingUnitType;

    /**
     * 是否自有资产;基本信息
     */
    private Integer ownAssets;

    /**
     * 物料规格;规格信息
     */
    @Length(max = 255, message = "物料规格;规格信息长度不能超过255")
    private String materialSpecification;

    /**
     * 计量单位
     */
    @Length(max = 32, message = "计量单位长度不能超过32")
    private String unit;

    /**
     * 长度;规格信息
     */
    private BigDecimal length;

    /**
     * 宽度;规格信息
     */
    private BigDecimal width;

    /**
     * 高度;规格信息
     */
    private BigDecimal height;

    /**
     * 容积;规格信息
     */
    private BigDecimal cubage;

    /**
     * 底面积;规格信息
     */
    private BigDecimal basalArea;

    /**
     * 体积;规格信息
     */
    private BigDecimal volume;

    /**
     * 毛重;规格信息
     */
    private BigDecimal roughWeight;

    /**
     * 净重;规格信息
     */
    private BigDecimal netWeight;

    /**
     * 是否停用
     */
    private Integer enabled;

    /**
     * 备注
     */
    @Length(max = 255, message = "备注长度不能超过255")
    private String remarks;

    /**
     * 版本号
     */
    private Long version;

    /**
     * 是否删除
     */
    private Integer deleted;

    /**
     * 创建人姓名
     */
    @Length(max = 50, message = "创建人姓名长度不能超过50")
    private String createdUserName;

    /**
     * 更新人姓名
     */
    @Length(max = 50, message = "更新人姓名长度不能超过50")
    private String lastUpdatedUserName;

    /**
     * 批量删除id
     */
    private List<String> ids;
    /**
     * 物料组编号
     */
    private String materialGroupCode;

    /**
     * 物料组名称
     */
    private String materialGroupName;

    /**
     * 物料类型（字典）
     */
    private String materialTypeName;
    /**
     * 物料状态（字典）
     */
    private String materialStateName;
    /**
     * 包装物料类别（字典）
     */
    private String packageTypeName;
    /**
     * 包装单位类别（字典）
     */
    private String handlingUnitTypeName;

    /**
     * 单位（字典）
     */
    private String unitName;
    /**
     * 是否转换（字典）
     */
    private String isConvertName;
    /**
     * 国产件标识（字典）
     */
    private String lcCkdName;
    /**
     * 是否自有资产（字典）
     */
    private String ownAssetsName;
    /**
     * 图号
     */
    @Length(max = 50, message = "图号长度不能超过50")
    private String figureNumber;

    /**
     * 检索使用的物料类型组
     */
    private int[] materialTypes;
}
